"""
跳过： 对于一些未完成的或者不满足测试条件的测试函数和测试类， 可以跳过执行
使用方式：
1. 直接将测试函数标记成跳过
    @unittest.skip('代码未完成')
2. 根据条件判断测试函数是否跳过
    @unittest.skipIf(condition, reason)
    @unittest.skipIf(条件, 跳过的原因)
"""

version = 6    # 标志为第6个版本

import unittest


# 定义一个加法的函数
def add(a, b):
    return a + b


class TestAdd(unittest.TestCase):
    @unittest.skip('跳过的原因，今天不开心，这个跳过')
    def test_add01(self):
        print('test_add01111111')
        # 1. 预期，传入参数1,1， 预期结果为2
        # ret为执行结果，实际结果
        ret = add(1, 1)
        print('ret = ', ret)
        # 断言
        self.assertEqual(2, ret)

    def test_add02(self):
        print('test_add02222222')
        # 1. 预期，传入参数10,10， 预期结果为10
        # ret为执行结果，实际结果
        ret = add(10, 10)
        print('ret = ', ret)
        # 断言
        self.assertEqual(20, ret)

    # @unittest.skipIf(True, '版本不匹配，跳过不测试')@
    @unittest.skipIf(version >= 5, '版本高于5，跳过不测试')
    def test_add03(self):
        print('test_add03333333333')
        # 1. 预期，传入参数10,10， 预期结果为10
        # ret为执行结果，实际结果
        ret = add(20, 20)
        print('ret = ', ret)
        # 断言
        self.assertEqual(40, ret)


@unittest.skip('版本更新，这个类不测试')
class TestAdd2(unittest.TestCase):
    def test_add01(self):
        print('test_add01111111')
        # 1. 预期，传入参数1,1， 预期结果为2
        # ret为执行结果，实际结果
        ret = add(1, 1)
        print('ret = ', ret)
        # 断言
        self.assertEqual(2, ret)

    def test_add02(self):
        print('test_add02222222')
        # 1. 预期，传入参数10,10， 预期结果为10
        # ret为执行结果，实际结果
        ret = add(10, 10)
        print('ret = ', ret)
        # 断言
        self.assertEqual(20, ret)

    def test_add03(self):
        print('test_add03333333333')
        # 1. 预期，传入参数10,10， 预期结果为10
        # ret为执行结果，实际结果
        ret = add(20, 20)
        print('ret = ', ret)
        # 断言
        self.assertEqual(40, ret)


